// 封装动画函数
function animate(obj, target, callback) {
    clearInterval(obj.timer);
    // 解决开启太多定时器的bug
    obj.timer = setInterval(function () {
        // 步长值写在定时器里，并避免小数
        // var step = Math.ceil(target - obj.offsetLeft) / 10;
        var step = (target - obj.offsetLeft) / 10;
        step = step > 0 ? Math.ceil(step) : Math.floor(step);
        if (obj.offsetLeft == target) {
            clearInterval(obj.timer);
            // 回调函数写在定时器结束里面
            if (callback) {
                callback();
            }
        }
        // 把加1 的步长值改为缓存的步长
        obj.style.left = obj.offsetLeft + step + 'px';
    }, 15);
}